// import { forwardRef, useImperativeHandle, useState } from 'react';

// import { useRequest } from 'ahooks';
// import { Button, DatePicker, Drawer, Form, FormProps, Input, Radio, Select, Space } from 'antd';
// import dayjs from 'dayjs';

// import { store } from '@/store';

// import { proRunLogAdd, proRunLogUpdate } from '@/services/bizApi/shengchanyunxingrizhijiekou';

// import { BizObject } from './';

// type EditOpenBaseArgs = {
//   /** 成功回调 */
//   onSuccess?: () => void;
// };

// export type EditRef = {
//   open: (
//     arg:
//       | (EditOpenBaseArgs & {
//           type: 'add';
//         })
//       | (EditOpenBaseArgs & {
//           type: 'edit';
//           rowData: BizObject;
//         })
//       | (EditOpenBaseArgs & {
//           type: 'detail';
//           rowData: BizObject;
//         })
//   ) => void;
// };

// export type EditProps = {};

// const Edit: React.ForwardRefRenderFunction<EditRef, EditProps> = (_, ref) => {
//   const [form] = Form.useForm();
//   // 弹窗开启状态
//   const [open, setOpen] = useState(false);
//   const [args, setArgs] = useState<ArgumentsType<EditRef['open']>[0]>();
//   const submit = useRequest(
//     async ({ _type, ...values }) => {
//       const query = {
//         ...values,
//         time: dayjs(values?.time).format('YYYY-MM-DD')
//       };

//       if (args?.type === 'edit' && args.rowData) {
//         query.id = args.rowData.id;
//       }

//       await (args?.type === 'edit' ? proRunLogUpdate(query) : proRunLogAdd(query));

//       args?.onSuccess?.();
//       setOpen(false);

//       store.app?.message.success(args?.type === 'edit' ? '编辑成功' : '新增成功');
//     },
//     {
//       manual: true
//     }
//   );

//   useImperativeHandle(ref, () => {
//     return {
//       open: (arg) => {
//         setArgs(arg);
//         setOpen(true);

//         setTimeout(() => {
//           // 编辑回填数据
//           if ((arg?.type === 'edit' || arg?.type === 'detail') && arg?.rowData) {
//             const time = dayjs(arg.rowData.time);
//             // 回填数据
//             form.setFieldsValue({
//               ...arg.rowData,
//               time
//             });
//           } else {
//             form.resetFields();
//           }
//         });
//       }
//     };
//   });

//   const onFinish: FormProps['onFinish'] = async (values) => {
//     return submit.runAsync(values);
//   };

//   const onCancel = () => {
//     if (submit.loading) {
//       store.app?.message.info('正在提交中，请稍后');

//       return;
//     }

//     setOpen(false);
//   };

//   // 仅保存
//   const onSave = () => {
//     form.submit();
//   };

//   return (
//     <Drawer
//       title={
//         {
//           add: '新增日志',
//           edit: '编辑日志',
//           detail: '日志详情'
//         }[args?.type as string]
//       }
//       extra={
//         <>
//           {args?.type !== 'detail' && (
//             <Space>
//               <Button
//                 type="primary"
//                 loading={submit.loading}
//                 disabled={submit.loading}
//                 onClick={onSave}
//               >
//                 保存
//               </Button>
//               <Button onClick={onCancel} disabled={submit.loading}>
//                 取消
//               </Button>
//             </Space>
//           )}
//         </>
//       }
//       width="50%"
//       open={open}
//       onClose={onCancel}
//     >
//       <Form
//         onFinish={onFinish}
//         form={form}
//         layout="horizontal"
//         labelCol={{ span: 6 }}
//         wrapperCol={{ span: 14 }}
//         requiredMark={args?.type !== 'detail'}
//         disabled={args?.type === 'detail'}
//         variant={args?.type === 'detail' ? 'borderless' : undefined}
//       >
//         <Form.Item
//           label="日期"
//           name="time"
//           rules={[
//             {
//               required: true,
//               message: '请选择日期'
//             }
//           ]}
//         >
//           <DatePicker style={{ width: '100%' }} placeholder="请选择日期" />
//         </Form.Item>
//         <Form.Item
//           label="主题"
//           name="theme"
//           rules={[
//             {
//               required: true,
//               message: '请选择主题'
//             }
//           ]}
//         >
//           <Select
//             style={{ width: '100%' }}
//             placeholder="请选择主题"
//             options={[
//               { value: '重要指令', label: '重要指令' },
//               { value: '普通指令', label: '普通指令' },
//               { value: '其他', label: '其他' }
//             ]}
//           />
//         </Form.Item>

//         <Form.Item
//           label="内容"
//           name="content"
//           rules={[
//             {
//               required: true,
//               message: '请输入内容'
//             }
//           ]}
//         >
//           <Input.TextArea placeholder="请输入内容" />
//         </Form.Item>

//         <Form.Item
//           label="是否延续下一班"
//           name="continueNext"
//           rules={[
//             {
//               required: true,
//               message: '请选择是否延续下一班'
//             }
//           ]}
//         >
//           <Radio.Group
//             options={[
//               { value: true, label: '是' },
//               { value: false, label: '否' }
//             ]}
//           />
//         </Form.Item>
//       </Form>
//     </Drawer>
//   );
// };

// export default forwardRef(Edit);
